PUSH এবং POP নির্দেশনাগুলি Assembly Language-এ Stack Operation পরিচালনার জন্য ব্যবহৃত হয়। স্ট্যাক একটি Last-In-First-Out (LIFO) ডেটা স্ট্রাকচার, যেখানে শেষ সংরক্ষিত ডেটা প্রথমে পুনরুদ্ধার করা হয়। Assembly প্রোগ্রামিংয়ে স্ট্যাক ব্যবস্থাপনা কার্যকরভাবে ফাংশন কল, রিটার্ন, এবং লোকাল ডেটা সংরক্ষণের জন্য গুরুত্বপূর্ণ।
PUSH Instruction:
- সংজ্ঞা: PUSH নির্দেশনা একটি রেজিস্টার বা মেমোরি লোকেশনের ডেটাকে স্ট্যাকে সংরক্ষণ করে এবং স্ট্যাক পয়েন্টার (ESP) আপডেট করে। এটি স্ট্যাকের টপে নতুন ডেটা যুক্ত করে।
- কাজের প্রক্রিয়া:
- ESP রেজিস্টারের মান কমানো হয় (ESP = ESP - 4)।
- ESP রেজিস্টারের নতুন মান নির্দেশিত ঠিকানায় ডেটা সংরক্ষণ করা হয়।
উদাহরণ:
MOV AX, 10 ; AX রেজিস্টারে ১০ লোড করা PUSH AX ; AX এর মান স্ট্যাকে সংরক্ষণ
POP Instruction:
- সংজ্ঞা: POP নির্দেশনা স্ট্যাক থেকে ডেটা পুনরুদ্ধার করে একটি নির্দিষ্ট রেজিস্টার বা মেমোরি লোকেশনে লোড করে এবং স্ট্যাক পয়েন্টার (ESP) আপডেট করে।
- কাজের প্রক্রিয়া:
- ESP রেজিস্টারের মান নির্দেশিত ঠিকানা থেকে ডেটা পড়া হয় এবং নির্দিষ্ট রেজিস্টারে লোড করা হয়।
- ESP রেজিস্টারের মান বাড়ানো হয় (ESP = ESP + 4)।
উদাহরণ:
POP BX ; স্ট্যাকের টপ থেকে ডেটা BX রেজিস্টারে স্থানান্তর
PUSH এবং POP এর মাধ্যমে Stack Operation-এর উদাহরণ
section .text
global _start
_start:
MOV AX, 5 ; AX রেজিস্টারে ৫ লোড করা
MOV BX, 10 ; BX রেজিস্টারে ১০ লোড করা
PUSH AX ; AX এর মান স্ট্যাকে সংরক্ষণ
PUSH BX ; BX এর মান স্ট্যাকে সংরক্ষণ
POP CX ; স্ট্যাকের টপ থেকে ডেটা CX রেজিস্টারে স্থানান্তর (BX এর মান)
POP DX ; স্ট্যাকের টপ থেকে ডেটা DX রেজিস্টারে স্থানান্তর (AX এর মান)
; এখন CX = 10 এবং DX = 5Stack Operation-এর ব্যবহার:
ফাংশন কল এবং রিটার্ন:
- ফাংশন কলের সময় রিটার্ন ঠিকানা, প্যারামিটার, এবং স্থানীয় ভেরিয়েবল স্ট্যাকে সংরক্ষণ করা হয়। ফাংশন শেষ হলে POP নির্দেশনা ব্যবহার করে সেই ডেটা পুনরুদ্ধার করা হয়।
ইন্টারাপ্ট হ্যান্ডলিং:
- ইন্টারাপ্টের সময় বর্তমান রেজিস্টারের মান PUSH নির্দেশনা ব্যবহার করে স্ট্যাকে সংরক্ষণ করা হয়, যাতে ইন্টারাপ্ট শেষে প্রোগ্রাম পূর্বাবস্থায় ফিরে যেতে পারে। ইন্টারাপ্ট শেষে POP নির্দেশনা ব্যবহার করে সেই রেজিস্টার মান পুনরুদ্ধার করা হয়।
ডেটা সংরক্ষণ ও পুনরুদ্ধার:
- কোন অপারেশনের মধ্যে ডেটা সাময়িকভাবে সংরক্ষণ ও পুনরুদ্ধারের জন্য স্ট্যাক ব্যবহৃত হয়। PUSH নির্দেশনা ডেটা সংরক্ষণ করে এবং POP নির্দেশনা ডেটা পুনরুদ্ধার করে।
সারসংক্ষেপ
PUSH এবং POP নির্দেশনাগুলি Assembly Language-এ স্ট্যাক অপারেশন পরিচালনার জন্য অপরিহার্য। PUSH নির্দেশনা স্ট্যাকে ডেটা সংরক্ষণ করে এবং POP নির্দেশনা স্ট্যাক থেকে ডেটা পুনরুদ্ধার করে। এই নির্দেশনাগুলি ফাংশন কল, রিটার্ন, এবং ইন্টারাপ্ট হ্যান্ডলিংয়ের সময় স্ট্যাক ব্যবস্থাপনা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more